package com.oj.api.auth.service;

import com.oj.api.auth.AuthAPI;
import com.oj.api.auth.domain.AccountInfo;
import com.oj.api.auth.domain.UserGroupInfo;
import com.oj.common.ICrudService;
import com.oj.common.IServiceLayer;
import com.oj.common.exception.BreezeeException;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.*;


/**
 * 用户组服务的接口
 *
 * @author Bing
 * @date 2017/5/10
 */
@FeignClient(value = AuthAPI.APPID, path = "/" + AuthAPI.BEAN_USER_GROUP_SERVICE)
public interface IUserGroupService extends ICrudService<UserGroupInfo> {


    /**
     * 添加题目集
     * @param userGroupInfo
     * @return
     */
    @PostMapping("/addProblemSetToUserGroup")
    UserGroupInfo addProblemSetToUserGroup(UserGroupInfo userGroupInfo);


    /**
     * 添加邀请码
     * @param userGroupInfo
     * @return
     */
    @PostMapping("/addPinCodeToUserGroup")
    UserGroupInfo addPinCodeToUserGroup(UserGroupInfo userGroupInfo);

    /**
     * 删除题目集
     * @param userGroupInfo
     * @return
     */
    @PostMapping("/deleteProblemSetFromUserGroup")
    UserGroupInfo deleteProblemSetFromUserGroup(UserGroupInfo userGroupInfo);

    /**
     * 删除邀请码
     * @param userGroupInfo
     * @return
     */
    @PostMapping("/deletePinCodeFromUserGroup")
    UserGroupInfo deletePinCodeFromUserGroup(UserGroupInfo userGroupInfo);

    /**
     * 添加用户
     * @param userGroupInfo
     * @return
     */
    @PostMapping("/addAccountInfoToUserGroup")
    UserGroupInfo addAccountInfoToUserGroup(UserGroupInfo userGroupInfo);

    /**
     * 删除用户
     * @param userGroupInfo
     * @return
     */
    @PostMapping("/deleteUserFromUserGroup")
    UserGroupInfo deleteUserFromUserGroup(UserGroupInfo userGroupInfo);

    @GetMapping("/expertMark/{code}")
    UserGroupInfo expertMarkForGetUserGroupInfo(@PathVariable("code") String code);
}



